La funzionalità standard del programma LibreOffice Calc non contiene funzioni per la traduzione del testo in altre lingue. Tuttavia, qualsiasi utente può creare tale funzione in modo indipendente.
In questo articolo esamineremo la funzione personalizzata GoogleTranslate_YouLibreCalc(), che ti consentirà di tradurre il testo direttamente in una cella su qualsiasi foglio di lavoro.
La funzione utilizza il sito per tradurre il testo "Google Traduttore" e può essere utilizzato in qualsiasi formula sia indipendentemente che insieme ad altre funzioni standard.
Aggiungere funzione Google Traduttore , aprire il menu Tools - Macros - Edit Macros... , Selezionare Module1 e copia il seguente testo nel modulo:
Option VBASupport 1
Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
' moonexcel.com.ua
Dim FCalc As Object
Dim WebsiteURL As String
Dim XMLHTTP As Object
Dim oHTML As Object
Dim HTMLDoc As HTMLDocument
Dim ObjClass As Object
FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
TextToTranslate = FCalc.callFunction("ENCODEURL", Array(TextToTranslate))
SrcLang = LCase(SrcLang)
TrgLang = LCase(TrgLang)
IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"
IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"
IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"
IF TrgLang = "zh-tw" Then TrgLang = "zh-TW"
WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate
' Eseguiamo la chiamata API al server web utilizzando la richiesta AJAX
Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
XMLHTTP.Open "GET", WebsiteURL, False
XMLHTTP.Send
' Creiamo un documento HTML utilizzando il testo di risposta della richiesta AJAX
Set oHTML = CreateObject("HTMLFile")
With oHTML
.Open
.Write XMLHTTP.responseText
.Close
End With
' Convertiamo il testo HTML in un modello a oggetti utilizzando la libreria di elementi web Microsoft HTML Object Libreria
Set HTMLDoc = oHTML
Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
If Not ObjClass Is Nothing Then
GoogleTranslate_YouLibreCalc = ObjClass.innerText
End If
' Liberiamo la memoria
Set ObjClass = Nothing
Set oHTML = Nothing
Set XMLHTTP = Nothing
End Function
Quindi, chiudi Macro Editor e tornare al foglio di lavoro LibreOffice Calc , seleziona qualsiasi cella e utilizza la nostra nuova funzionalità GoogleTranslate_YouLibreCalc() .
Puoi anche utilizzare la funzione GOOGLETRANSLATE() installando l'estensione gratuita YouLibreCalc.oxt o la sua versione completa YLC_Utilities.oxt .
Successivamente, questa funzione sarà disponibile in tutti i file che verranno aperti in LibreOffice Calc.